package com.github.cakin.shiro.chapter17.dao;

import com.github.cakin.shiro.chapter17.entity.Client;

import java.util.List;

/**
 * @className: ClientDao
 * @description: 客户端DAO
 * @date: 2020/5/27
 * @author: cakin
 */
public interface ClientDao {
    /**
     * 功能描述：创建客户端
     *
     * @param client 客户端
     * @return Client 客户端
     * @author cakin
     * @date 2020/5/27
     */
    Client createClient( Client client );
    /**
     * 功能描述：更新客户端
     *
     * @param client 客户端
     * @return Client 客户端
     * @author cakin
     * @date 2020/5/27
     */
    Client updateClient( Client client );
    /**
     * 功能描述：根据客户端Id主键删除客户端
     *
     * @param clientId 客户端
     * @author cakin
     * @date 2020/5/27
     */
    void deleteClient( Long clientId );
    /**
     * 功能描述：根据客户端Id主键查找客户端
     *
     * @param clientId 客户端
     * @return Client 客户端
     * @author cakin
     * @date 2020/5/27
     */
    Client findOne( Long clientId );
    /**
     * 功能描述：找到所有客户端
     *
     * @return List<Client> 客户端列表
     * @author cakin
     * @date 2020/5/27
     */
    List<Client> findAll();
    /**
     * 功能描述：根据客户端业务键Id查找客户端
     *
     * @param clientId 客户端
     * @return Client 客户端
     * @author cakin
     * @date 2020/5/27
     */
    Client findByClientId( String clientId );
    /**
     * 功能描述：根据客户端密钥查找客户端
     *
     * @param clientSecret 客户端密钥
     * @return Client 客户端
     * @author cakin
     * @date 2020/5/27
     */
    Client findByClientSecret( String clientSecret );

}
